package Day05;

import java.util.Arrays;

public class ArrayDemo {
    public static void main(String[] args) {
        /*
        int[] a = new int[5];//声明整型数组a，包含5个元素，每个元素都是int类型，默认值为0
        double[] b = new double[10];//声明浮点型数组b，包含每个元素都是double类型，默认值为0.0
        boolean[] c = new boolean[20];//声明布尔型数组c，包含20个元素，每个元素都是boolean类型，默认值为false


        int[] arr1 = new int[3];
        int[] arr2 = {2, 5, 8};
        int[] arr3 = new int[]{2, 5, 8};
        int[] arr4;
        //  arr4 = {2,5,8}//编译错误，此方式只能声明同时初始化
        arr4 = new int[]{2, 5, 8};//正确


        int[] arr = new int[3];
        System.out.println("数组的长度为：" + arr.length);
        System.out.println("数组的第一个元素为：" + arr[0]);
        arr[0] = 100;//给第一个元素赋值为100
        arr[1] = 200;//给第二个元素赋值为200
        arr[2] = 300;//给第三个元素赋值为300
        //arr[3] = 400;  //运行时会发生数组下标越界异常
        System.out.println(arr[2]);//300,输出最后一个元素的值
        System.out.println(arr[arr.length - 1]);//300,输出最后一个元素的值
*/
        /*//4） 数组的遍历：从头到尾挨个走一遍
        int[] arr = new int[100];
        for (int i = 0;i < arr.length;i++){//遍历arr数组
            arr[i] =(int) (Math.random()*100);//给每个元素赋值为0-99的随机数
            System.out.println(arr[i]);//输出每个元素的值
        }
        int[]a = {1,2,3,4,5};
        int[]b = new int[6];
        System.arraycopy(a,1,b,2,4);
/*
        for (int i = 0;i<b.length;i++){
            System.out.println(b[i]);
            */
/*
            int[]a = {10,20,30,40,50};
            int[]b = Arrays.copyOf(a,6);//灵活度较差
            for (int i = 0;i<b.length;i++){
                System.out.println(b[i]);
            }
        /*a为原数组
        b为目标数组
        6：目标数组的长度
        --若目标数组长度>原数组长度，则末尾补默认值
        --若目标数组长度<原数组长度，则将末尾的截掉
         */

        }
}
